#ifndef MYCALLBACK_H
#define MYCALLBACK_H

#include "irm_callbacks.h"
// #include "irm_init_qt.h" // qt
#include "irm.h" // vc
using namespace ophies;

class COphies;

class MyInstancesCallback : public DcmInstancesCallback
{
public:
    IrmMain* irmMain;
    DcmSeries* parentSeries;

public:
    MyInstancesCallback(IrmMain* irmMain, DcmSeries *parentSeries, COphies* pNotify, QObject *parent = NULL);
    virtual void myObjectHandler(DataModel *object);
    virtual void myListHandler(QList<DataModel *> *list);

protected:
	COphies*		m_pNotify;
};

class MySeriesCallback : public DcmSeriesCallback
{
public:
    IrmMain* irmMain;
    DcmStudy* parentStudy;
    QList<MyInstancesCallback*> *instancesCallbacks;

public:
    MySeriesCallback(IrmMain* irmMain, DcmStudy *parentStudy, COphies* pNotify, QObject *parent = NULL);
    virtual void myObjectHandler(DataModel *object);
    virtual void myListHandler(QList<DataModel *> *list);

protected:
	COphies*		m_pNotify;
};

class MyStudiesCallback : public DcmStudiesCallback
{
public:
    IrmMain* irmMain;
    QList<MySeriesCallback*> *seriesCallbacks;

public:
    MyStudiesCallback(IrmMain* irmMain, COphies* pNotify, QObject *parent = NULL);
    virtual void myObjectHandler(DataModel *object);
    virtual void myListHandler(QList<DataModel *> *list);

protected:
	COphies*		m_pNotify;
};

#endif // MYCALLBACK_H
